package fr.lifl.homade.iuta.ip;

import fr.lifl.homade.iuta.exceptions.InsufisantDataException;

public interface IP {
	/**
	 * Execute la fonction principale de l'IP
	 * 
	 * @param in Le nombre de donnees a retirer du stack de donnees
	 * @param out Le nombre de donnees a ajouter au stack de donnees
	 * @throws InsufisantDataException Si il y a moins de donnees dans le stack que de donnes a retirer
	 * @throws IllegalArgumentException Si {@code in < 0 || (out != 0 && out != 1}
	 */
	public void exec(int in, int out) throws InsufisantDataException;
}
